package com.dsj.gxrd.modules.book.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dsj.gxrd.modules.book.domain.dto.RdFileDto;
import com.dsj.gxrd.modules.book.domain.entity.RdFile;
import com.dsj.gxrd.modules.book.enums.FileRelationTypeEnum;

import java.util.List;
import java.util.Map;

/**
 * 【请填写功能名称】Service接口
 * 
 * @author ruoyi
 * @date 2023-09-11
 */
public interface IRdFileService extends IService<RdFile>
{

    /**
     * 批量新增文件
     * @param fileList 文件集合
     * @param relationId 关联id
     * @param relationType 关联类型
     */
    public void saveFileBatch(List<RdFileDto> fileList, Long relationId, FileRelationTypeEnum relationType);


    /**
     * 批量修改文件
     * @param fileList 文件集合
     * @param relationId 关联id
     * @param relationType 关联类型
     */
    public void updateFileBatch(List<RdFileDto> fileList, Long relationId, FileRelationTypeEnum relationType);

    /**
     * 查询文件
     * @param relationId 关联id
     * @param relationType 关联类型
     */
    public List<RdFileDto> listFiles(Long relationId, FileRelationTypeEnum relationType);


    /**
     * 根据关联id删除文件
     * @param relationId 关联id
     * @param relationType 关联类型
     */
    public void deleteFilesByRelationId(Long relationId, FileRelationTypeEnum relationType);

    /**
     * 根据关联ids删除文件
     */
    public void deleteFilesByRelationIds(List<Long> relationIds, FileRelationTypeEnum relationType);

    /**
     * 根据文件id删除
     * @param relationId 关联id
     * @param relationType 关联类型
     * @param fileList 文件id集合
     */
    public void deleteFilesByFileIds(Long relationId, FileRelationTypeEnum relationType, List<Long>fileList);

    /**
     * 返回分好组的文件
     * @param ids 关联id
     * @param bookSweetCommShareImage 关联类型
     * @return 返回Map
     */
    public Map<Long, List<RdFileDto>> listFilesMap(List<Long> ids, FileRelationTypeEnum bookSweetCommShareImage);


}
